This is primarily for the SD bootloader.
To load the program from USB you can simply use Arduino Zero Native USB Port.

Copy the files provided in the relevant folders:
boards.txt in
C:\Users\(User Name)\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.5\
flash_with_SDbootloader.ld  in
C:\Users\(User Name)\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.5\variants\arduino_zero\linker_scripts\gcc
You can check right address on "File/Settings/More preferences ...." of arduino IDE menù

You will find three new tabs in "Tools - Board":
GEVINO SD bootloader
GEVINO SAM-BA bootloader
GEVINO no bootloader
The first compiles the schetch from the address 0x8000, the second from the address 0x2000, the third from 0x0000
Compile with the first, doing, "Sketch / Export Compiled Binary"
Rename the file in the scheck folder to firmware.bin and copy it to the FAT32 formatted SD card
At power up, if the GEVINO finds the files, the yellow LED flashes, then makes two lenses flash and launches the app.
After that delete the file or remove the SD, otherwise each power-up will re-flash the flash.


----------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------
If this file board.txt is not compatible with new version of Compiler, add to existing file this:
----------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------

# GEVINO SAM-BA boot
# ---------------------------------------
GEVINO_SAM-BA_boot.name=GEVINO SAM-BA bootloader
GEVINO_SAM-BA_boot.vid.0=0x2341
GEVINO_SAM-BA_boot.pid.0=0x804d
GEVINO_SAM-BA_boot.vid.1=0x2341
GEVINO_SAM-BA_boot.pid.1=0x004d

GEVINO_SAM-BA_boot.vid.2=0x2341
GEVINO_SAM-BA_boot.pid.2=0x824d
# If the board is a 2341:824d use 2341:824d for build and set other parameters as well
GEVINO_SAM-BA_boot.vid.2.build.vid=0x2341
GEVINO_SAM-BA_boot.vid.2.build.pid=0x824d
GEVINO_SAM-BA_boot.vid.2.build.usb_product="GEVINO"
GEVINO_SAM-BA_boot.vid.2.bootloader.file=zero/samd21_sam_ba_genuino.bin

GEVINO_SAM-BA_boot.vid.3=0x2341
GEVINO_SAM-BA_boot.pid.3=0x024d
# If the board is a 2341:024d use 2341:824d for build and set other parameters as well
GEVINO_SAM-BA_boot.vid.3.build.vid=0x2341
GEVINO_SAM-BA_boot.vid.3.build.pid=0x824d
GEVINO_SAM-BA_boot.vid.3.build.usb_product="GEVINO"
GEVINO_SAM-BA_boot.vid.3.bootloader.file=zero/samd21_sam_ba_genuino.bin

GEVINO_SAM-BA_boot.upload.tool=bossac
GEVINO_SAM-BA_boot.upload.protocol=sam-ba
GEVINO_SAM-BA_boot.upload.maximum_size=262144
GEVINO_SAM-BA_boot.upload.use_1200bps_touch=true
GEVINO_SAM-BA_boot.upload.wait_for_upload_port=true
GEVINO_SAM-BA_boot.upload.native_usb=true
GEVINO_SAM-BA_boot.build.mcu=cortex-m0plus
GEVINO_SAM-BA_boot.build.f_cpu=48000000L
GEVINO_SAM-BA_boot.build.usb_product="GEVINO"
GEVINO_SAM-BA_boot.build.usb_manufacturer="GEVA elettronica"
GEVINO_SAM-BA_boot.build.board=SAMD_ZERO
GEVINO_SAM-BA_boot.build.core=arduino
GEVINO_SAM-BA_boot.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
GEVINO_SAM-BA_boot.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
GEVINO_SAM-BA_boot.build.openocdscript=openocd_scripts/arduino_zero.cfg
GEVINO_SAM-BA_boot.build.variant=arduino_zero
GEVINO_SAM-BA_boot.build.variant_system_lib=
GEVINO_SAM-BA_boot.build.vid=0x2341
GEVINO_SAM-BA_boot.build.pid=0x804d
GEVINO_SAM-BA_boot.bootloader.tool=openocd
GEVINO_SAM-BA_boot.bootloader.file=zero/samd21_sam_ba.bin

# GEVINO SD boot
# ---------------------------------------
GEVINO_SD_boot.name=GEVINO SD bootloader
GEVINO_SD_boot.vid.0=0x2341
GEVINO_SD_boot.pid.0=0x804d
GEVINO_SD_boot.vid.1=0x2341
GEVINO_SD_boot.pid.1=0x004d

GEVINO_SD_boot.vid.2=0x2341
GEVINO_SD_boot.pid.2=0x824d
# If the board is a 2341:824d use 2341:824d for build and set other parameters as well
GEVINO_SD_boot.vid.2.build.vid=0x2341
GEVINO_SD_boot.vid.2.build.pid=0x824d
GEVINO_SD_boot.vid.2.build.usb_product="GVINO"
GEVINO_SD_boot.vid.2.bootloader.file=zero/samd21_sam_ba_genuino.bin

GEVINO_SD_boot.vid.3=0x2341
GEVINO_SD_boot.pid.3=0x024d
# If the board is a 2341:024d use 2341:824d for build and set other parameters as well
GEVINO_SD_boot.vid.3.build.vid=0x2341
GEVINO_SD_boot.vid.3.build.pid=0x824d
GEVINO_SD_boot.vid.3.build.usb_product="GEVINO"
GEVINO_SD_boot.vid.3.bootloader.file=zero/samd21_sam_ba_genuino.bin

GEVINO_SD_boot.upload.tool=bossac
GEVINO_SD_boot.upload.protocol=sam-ba
GEVINO_SD_boot.upload.maximum_size=262144
GEVINO_SD_boot.upload.use_1200bps_touch=true
GEVINO_SD_boot.upload.wait_for_upload_port=true
GEVINO_SD_boot.upload.native_usb=true
GEVINO_SD_boot.build.mcu=cortex-m0plus
GEVINO_SD_boot.build.f_cpu=48000000L
GEVINO_SD_boot.build.usb_product="GEVINO"
GEVINO_SD_boot.build.usb_manufacturer="GEVA elettronica"
GEVINO_SD_boot.build.board=SAMD_ZERO
GEVINO_SD_boot.build.core=arduino
GEVINO_SD_boot.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
GEVINO_SD_boot.build.ldscript=linker_scripts/gcc/flash_with_SDbootloader.ld
GEVINO_SD_boot.build.openocdscript=openocd_scripts/arduino_zero.cfg
GEVINO_SD_boot.build.variant=arduino_zero
GEVINO_SD_boot.build.variant_system_lib=
GEVINO_SD_boot.build.vid=0x2341
GEVINO_SD_boot.build.pid=0x804d
GEVINO_SD_boot.bootloader.tool=openocd
GEVINO_SD_boot.bootloader.file=zero/samd21_sam_ba.bin

# GEVINO no boot
# ---------------------------------------
GEVINO_NO_boot.name=GEVINO no bootloader
GEVINO_NO_boot.vid.0=0x2341
GEVINO_NO_boot.pid.0=0x804d
GEVINO_NO_boot.vid.1=0x2341
GEVINO_NO_boot.pid.1=0x004d

GEVINO_NO_boot.vid.2=0x2341
GEVINO_NO_boot.pid.2=0x824d
# If the board is a 2341:824d use 2341:824d for build and set other parameters as well
GEVINO_NO_boot.vid.2.build.vid=0x2341
GEVINO_NO_boot.vid.2.build.pid=0x824d
GEVINO_NO_boot.vid.2.build.usb_product="GEVINO"
GEVINO_NO_boot.vid.2.bootloader.file=zero/samd21_sam_ba_genuino.bin

GEVINO_NO_boot.vid.3=0x2341
GEVINO_NO_boot.pid.3=0x024d
# If the board is a 2341:024d use 2341:824d for build and set other parameters as well
GEVINO_NO_boot.vid.3.build.vid=0x2341
GEVINO_NO_boot.vid.3.build.pid=0x824d
GEVINO_NO_boot.vid.3.build.usb_product="GEVINO"
GEVINO_NO_boot.vid.3.bootloader.file=zero/samd21_sam_ba_genuino.bin

GEVINO_NO_boot.upload.tool=bossac
GEVINO_NO_boot.upload.protocol=sam-ba
GEVINO_NO_boot.upload.maximum_size=262144
GEVINO_NO_boot.upload.use_1200bps_touch=true
GEVINO_NO_boot.upload.wait_for_upload_port=true
GEVINO_NO_boot.upload.native_usb=true
GEVINO_NO_boot.build.mcu=cortex-m0plus
GEVINO_NO_boot.build.f_cpu=48000000L
GEVINO_NO_boot.build.usb_product="GEVINO"
GEVINO_NO_boot.build.usb_manufacturer="GEVA elettronica"
GEVINO_NO_boot.build.board=SAMD_ZERO
GEVINO_NO_boot.build.core=arduino
GEVINO_NO_boot.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
GEVINO_NO_boot.build.ldscript=linker_scripts/gcc/flash_without_bootloader.ld
GEVINO_NO_boot.build.openocdscript=openocd_scripts/arduino_zero.cfg
GEVINO_NO_boot.build.variant=arduino_zero
GEVINO_NO_boot.build.variant_system_lib=
GEVINO_NO_boot.build.vid=0x2341
GEVINO_NO_boot.build.pid=0x804d
GEVINO_NO_boot.bootloader.tool=openocd
GEVINO_NO_boot.bootloader.file=zero/samd21_sam_ba.bin